import wxValidate from 'wechat-validate'

// const app = getApp()

Page({
  behaviors: [wxValidate],
  data: {
    roomInfo: '',
    point: '', // 小区信息
    building: '', // 楼栋号
    room: '', // 房间号
    name: '', // 业主姓名
    gender: 0, // 业主性别0女1男
    mobile: '', // 业主手机号
    idcardFrontUrl: '',
    idcardBackUrl: '',
  },

  rules: {
    name: [
      { required: true, message: '业主姓名不能为空!' },
      { pattern: /^[\u4e00-\u9fa5]{2,5}$/, message: '业主姓名只能为中文!' },
    ],
    mobile: [
      { required: true, message: '业主手机号不能为空!' },
      { pattern: /^1[3-8]\d{9}$/, message: '请填写正确的手机号!' },
    ],
    idcardFrontUrl: [{ required: true, message: '请上传身份证国徽面!' }],
    idcardBackUrl: [{ required: true, message: '请上传身份证照片面!' }],
  },

  async submit() {
    if (!this.validate()) return

    const { roomInfo, __webviewId__, ...formData } = this.data
    console.log('formData:', formData)

    // 如果没有id参数，说明是添加，就需要删除id数据
    // if (!this.options.id) delete formData.id

    const res = await wx.http({
      method: 'post',
      url: '/room',
      data: formData,
    })
    console.log(res, 'res')

    wx.utils.toast((this.options.id ? '修改' : '添加') + '成功')

    setTimeout(() => {
      wx.navigateBack({ delta: this.options.id ? 1 : 4 })
    }, 1500)
  },

  async uploadIdcardImage(e) {
    // if (1 === 1) return wx.utils.redirectToLogin()

    // 选择图片
    const res = await wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
    })
    // 获取到临时路径
    let { tempFilePath } = res.tempFiles[0]

    const res2 = await wx.http.uploadFile(tempFilePath)

    // // 搞一个立即执行函数，用来封闭这段逻辑中定义的变量，避免和外部的变量名冲突
    // // 注意：立即执行函数前最好加个分号，否则有可能会导致逻辑错乱 ==> fn()  (() => {})()
    // ;(() => {
    //   const arr = tempFilePath.split('.')
    //   const suffix = arr[arr.length - 1].toLowerCase()
    //   arr.splice(arr.length - 1, 1, suffix)
    //   tempFilePath = arr.join('.')
    // })()

    // // 上传文件，得到永久路径
    // const res2 = await new Promise((resolve, reject) => {
    //   // 将wx.uploadFile也封装成Promise，并且融入wx.http的拦截器逻辑
    //   wx.uploadFile({
    //     filePath: tempFilePath,
    //     name: 'file',
    //     url: wx.http.baseURL + '/upload',
    //     header: {
    //       Authorization: `Bearer ${app.token}`,
    //     },
    //     success: (res) => {
    //       resolve(JSON.parse(res.data))
    //     },
    //     fail: (err) => {
    //       reject(err)
    //     },
    //   })
    // })
    // 将永久路径保存到data中
    this.setData({ [e.mark.type]: res2.data.url })
  },

  // goList() {
  //   // wx.navigateTo、wx.redirectTo、wx.switchTab、wx.reLaunch

  //   // 清空页面栈，跳到目标页
  //   wx.reLaunch({
  //     url: '/house_pkg/pages/list/index',
  //   })
  // },
  removePicture(ev) {
    // 移除图片的类型（身份证正面或反面）
    const type = ev.mark.type
    this.setData({ [type]: '' })
  },

  async onLoad() {
    const { id, title } = this.options
    // 设置导航栏标题
    wx.setNavigationBarTitle({
      title: (id ? '修改' : '添加') + '房屋信息',
    })
    if (id) {
      // 修改
      const { data } = await wx.http({ url: '/room/' + id })
      const { point, building, room } = data
      // 剔除多余数据
      const {status,...formData } = data
      this.setData({ ...formData, roomInfo: point + building + room })
    } else {
      // 添加
      this.setData({ roomInfo: title })
      const [, point, building, room] = title.match(/^(.+?)([a-zA-Z0-9]+[栋号])(\d{3,4}室)$/)
      this.setData({ point, building, room })
    }
  },
})